The invention relates to language understanding and more particularly to a system for building and running natural language understanding systems. Language understanding systems are a type of system wherein meaning is ascribed to sentences of a human language. Constructing language understanding systems is generally a laborious process performed by experts in the field of natural language understanding. As the need intensifies for providing more sophisticated interfaces between machines and human beings, more sophisticated language understanding systems are needed, and more tools are needed to build language understanding systems.
What is needed specifically is a development system that allows a developer to easily create natural language understanding systems.
According to the invention, there is provided a computerized method for building and running natural language understanding systems, wherein a natural language understanding system takes a sentence as input and returns some representation of the possible meanings of the sentence as output (the xe2x80x9cinterpretationxe2x80x9d) using a run-time interpreter that assigns Interpretations to sentences and a compiler that produces (in a computer memory) an internal specification needed for the run-time interpreter from a user specification of the semantics of the application. A typical tool according to the invention comprises two components:
1) a run-time interpreter that assigns interpretations to sentences; and
2) a compiler that produces (in a computer memory) the internal specification needed by the run-time interpreter from a developer""s specification of the semantics of the application.
The compiler is the component that is used in building a natural language system, while the run-time interpreter is the component that is used in actually running this system.
The two components of a compiler and a run-time interpreter are highly interdependent. Without the internal specification produced by the compiler, the run-time interpreter cannot operate. The compiler itself has no function except to provide the internal specification needed by the run-time interpreter.